Quantizers of complex vectors find numerous applications in modern communication systems. One typical example is downlink multi-user MIMO (multiple-input-multiple-output) mobile broadcast systems with feedback. As is well known to those skilled in the art, MIMO broadcast systems with feedback are organized as follows. The mobile base station is assumed to be equipped with M transmitting antennas, and it needs to transmit independent messages to K wireless (i.e., mobile) terminals (i.e., receivers). Each of these K terminals is typically equipped with a single antenna. In particular, the base station transmits signal xjεC from the j-th antenna, where C is the set of all complex numbers. Thus, the base station transmits a vector xj=(x1, . . . , xM)εCM from the j-th antenna.
During transmission from the j-th antenna to the m-th mobile terminal the signal xj is multiplied by a channel coefficient hm,j. (As is well known to those of ordinary skill in the art, the channel coefficient of a mobile communications channel represents the effect of the environment on the transmitted signal. As such, it is likely that the channel coefficient of a given channel varies over time.) Thus, when the vector x is transmitted by the base station, the terminal m actually receives the signal ym=hmx*+zm, where hm=(hm,1, . . . , hm,M)εCM is the channel vector of the m-th mobile terminal and zm is additive noise. (Note that by convention, we will denote by boldface letters row vectors, and by the operator “*” transposition and complex conjugation of complex vectors.) Note that the power of the transmitted vector x cannot exceed P, i.e., E[∥x2∥]≧P.
As is well known to those skilled in the art, at the beginning of each communication session (and periodically during it), the base station sends fixed, well-defined pilot signals to the mobile terminals. The mobile terminals use these pilot signals to estimate their respective channel vectors hm. Next, the m-th mobile terminal (m=1, . . . , K) decodes its channel vector hm, typically by using a predefined codebook (which is fixed and known to each of the mobile terminals and also to the base station), C={c1, c2 . . . , cr}, ciεCM, ∥ci∥=1, where each of the r codebook entries comprises an M-element complex vector, which is advantageously used to represent (i.e., by approximating) the actual (i.e., as measured) value of the channel vector. In particular, the m-th mobile terminal computes
      t    m    =            arg        ⁢                                            ⁢        max                              c          i                ∈        C              ⁢                                                                h              m                        ⁢                          c              i              *                                                2            .      That is, the code vector tm is the index of the codebook entry within the codebook which best represents the channel vector hm, and thus, the code vector tm is a “quantized” (i.e., approximated) version of the channel vector hm. Typically, the codebooks used in such wireless communications systems comprise code vectors which have been generated randomly.
After the m-th mobile terminal has selected a codebook entry to represent its channel vector, it transmits the index thereof, tm, back to the base station, thereby indicating to the base station the (approximate) value of the channel vector hm. That is, since the codebook used by the mobile terminals is fixed and is also known by the base station, the indices tm, m=1, . . . , K advantageously allow the base station to reconstruct the quantized versions ct1, . . . , ctK of the channel vectors h1, . . . , hK, respectively. A base station employing downlink multi-user MIMO broadcast techniques then must choose a subset of M mobile terminals from among the K mobile terminals (since the base station has only M antennae and thus can transmit at most M independent sets of data); and then it must transmit the appropriate data to those M mobile terminals, preferably taking the (reconstructed) channel vectors into account (since these channel vectors will otherwise distort the transmitted data).
Although there are various strategies that can be used by the base station for choosing the subset of M mobile terminals and for transmitting the associated data thereto, all such prior art approaches invariably result in the frequent transmission of data to the M mobile terminals which interfere with each other. For example, one such strategy which provides some efficiency improvement involves the base station performing a search amongst the various channel vectors in an attempt to find among the code vectors ct1, . . . , ctK, M vectors that are mutually (i.e., pairwise) orthogonal or almost orthogonal to each other, that is to find a subset B⊂{t1, . . . , tK} such that for any i, jεB we have |cic*j|2=0 (i.e., ci and cj are orthogonal) or |cic*j|2≧α (i.e., ci and cj are almost orthogonal), where α is a small constant (for example, 0.05) that does not depend on i or j. To the extent that such code vectors can be found, the amount of interference will be advantageously reduced by selecting mobile terminals mεB, since channel vectors of these mobile terminals are almost orthogonal to each other and therefore they introduce only small interference to each other. However, such an approach is “hit or miss” at best, and, in many, if not most, cases, no such set of M vectors will be found (given a reasonable value of α, of course). What is needed is an approach whereby the interference between the data simultaneously sent by the base station to a plurality of mobile terminals is reliably minimized much, if not most, of the time.